Single system image

In distributed computing, a single system image (SSI) cluster is a cluster of machines that appears to be one single system.[1][2] The concept is often considered synonymous with that of a distributed operating system,[3][4] but a single image may be presented for more limited purposes, just job scheduling for instance, which may be achieved by means of an additional layer of software over conventional operating system images running on each node.[5] The interest in SSI clusters is based on the perception that they may be simpler to use and administer than more specialized clusters.

Different SSI systems may provide a more or less complete illusion of a single system.

Contents

Features of SSI clustering systems

Different SSI systems may, depending on their intended usage, provide some subset of these features.

Process migration

Many SSI systems provide process migration.[6] Processes may start on one node and be moved to another node, possibly for resource balancing or administrative reasons.[note 1] As processes are moved from one node to another, other associated resources (for example IPC resources) may be moved with them.

Process checkpointing

Some SSI systems allow checkpointing of running processes, allowing their current state to be saved and reloaded at a later date.[note 2] Checkpointing can be seen as related to migration, as migrating a process from one node to another can be implemented by first checkpointing the process, then restarting it on another node. Alternatively checkpointing can be considered as migration to disk.

Single process space

Some SSI systems provide the illusion that all processes are running on the same machine - the process management tools (e.g. "ps", "kill" on Unix like systems) operate on all processes in the cluster.

Single root

Most SSI systems provide a single view of the file system. This may be achieved by a simple NFS server, shared disk devices or even file replication.

The advantage of a single root view is that processes may be run on any available node and access needed files with no special precautions. If the cluster implements process migration a single root view enables direct accesses to the files from the node where the process is currently running.

Some SSI systems provide a way of "breaking the illusion", having some node-specific files even in a single root, e.g. HP TruCluster provides a "context dependent symbolic link" (CDSL) which points to different files depending on the node that accesses it. This may be necessary to deal with heterogeneous clusters, where not all nodes have the same configuration.

Single I/O space

Some SSI systems allow all nodes to access the I/O devices (e.g. tapes, disks, serial lines and so on) of other nodes. There may be some restrictions on the kinds of accesses allowed (For example OpenSSI can't mount disk devices from one node on another node).

Single IPC space

Some SSI systems allow processes on different nodes to communicate using inter-process communications mechanisms as if they were running on the same machine. On some SSI systems this can even include shared memory (can be emulated with Software Distributed shared memory).

In most cases inter-node IPC will be slower than IPC on the same machine, possibly drastically slower for shared memory. Some SSI clusters include special hardware to reduce this slowdown.

Cluster IP address

Some SSI systems provide a "cluster address", a single address visible from outside the cluster that can be used to contact the cluster as if it were one machine. This can be used for load balancing inbound calls to the cluster, directing them to lightly loaded nodes, or for redundancy, moving the cluster address from one machine to another as nodes join or leave the cluster.[note 3]

Some example SSI clustering systems

SSI Properties of different clustering systems
Name Process migration Process checkpoint Single process space Single root Single I/O space Single IPC space Cluster IP address[t 1]
Amoeba[t 2] Yes Yes Yes Yes Unknown Yes Unknown
AIX TCF[t 3] Unknown Unknown Unknown Yes Unknown Unknown Unknown
Genesis
Inferno
Kerrighed Yes Yes Yes Yes Unknown Yes Unknown
LinuxPMI[t 4] Yes Yes No Yes No No Unknown
LOCUS[t 5] Unknown Unknown Yes Yes Yes Yes[t 6] Unknown
MOSIX Yes Yes No Yes No No Unknown
openMosix[t 7] Yes Yes No Yes No No Unknown
Open-Sharedroot[t 8] No No No Yes No No Yes
OpenSSI Yes No Yes Yes Yes Yes Yes
VMScluster No No Yes Yes Yes Yes Yes
Plan 9 No[7] No No Yes Yes Yes Yes
Sprite[t 9] Yes Unknown No Yes Yes No Unknown
TruCluster[t 10] No Unknown No Yes No No Yes
  1. ^ Many of the Linux based SSI clusters can use the Linux Virtual Server to implement a single cluster IP address
  2. ^ Amoeba development is carried forward by Dr. Stefan Bosse at BSS Lab
  3. ^ AIX TCF was available in AIX 1. It is currently inactive
  4. ^ LinuxPMI is a successor to openMosix
  5. ^ LOCUS is currently inactive
  6. ^ LOCUS used named pipes for IPC
  7. ^ openMosix was a fork of MOSIX, now inactive
  8. ^ Open-Sharedroot is a shared root Cluster from ATIX
  9. ^ Sprite is inactive.
  10. ^ TruCluster is part of the Tru64 operating system from Hewlett-Packard

See also

Notes

  1. ^ for example it may be necessary to move long running processes off a node that is to be closed down for maintenance
  2. ^ Checkpointing is particularly useful in clusters used for high-performance computing, avoiding lost work in case of a cluster or node restart
  3. ^ "leaving a cluster" is often a euphemism for crashing

References

  1. ^ Pfister, Gregory F. (1998), In search of clusters, Upper Saddle River, NJ: Prentice Hall PTR, ISBN 978-0138997090, OCLC 38300954 
  2. ^ Buyya, Rajkumar; Cortes, Toni; Jin, Hai (2001), "Single System Image", International Journal of High Performance Computing Applications 15 (2): 124, doi:10.1177/109434200101500205, http://www.buyya.com/papers/SSI-CCWhitePaper.pdf 
  3. ^ Coulouris, George F; Dollimore, Jean; Kindberg, Tim (2005), Distributed systems: concepts and design, Addison Wesley, p. 223, ISBN 978-0321263544, http://books.google.com/books?id=d63sQPvBezgC&pg=PA223&dq=%22distributed+operating+system%22&cd=3#v=onepage&q=%22distributed%20operating%20system%22&f=false 
  4. ^ Bolosky, William J.; Draves, Richard P.; Fitzgerald, Robert P. ; Fraser, Christopher W. ; Jones, Michael B.; Knoblock, Todd B.; Rashid, Rick (1997-05-05), "Operating System Directions for the Next Millennium" (PDF), 6th Workshop on Hot Topics in Operating Systems (HotOS-VI), Cape Cod, MA, pp. 106, doi:10.1109/HOTOS.1997.595191, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.9538&rep=rep1&type=pdf, retrieved 2010-09-29 
  5. ^ Prabhu, C.S.R. (2009), Grid And Cluster Computing, Phi Learning, pp. 256, ISBN 978-8120334281, http://books.google.com/books?id=EIVdVtGHv-0C&pg=PA177&dq=%22distributed+operating+system%22+%22single+system+image%22&cd=14#v=onepage&q=%22distributed%20operating%20system%22%20%22single%20system%20image%22&f=false 
  6. ^ Smith, Jonathan M. (1988), "A survey of process migration mechanisms", ACM SIGOPS Operating Systems Review 22: 28, doi:10.1145/47671.47673, http://www.cis.upenn.edu/~jms/svy-pm.pdf 
  7. ^ Pike, Rob; Presotto, Dave; Thompson, Ken; Trickey, Howard (1990), "Plan 9 from Bell Labs", In Proceedings of the Summer 1990 UKUUG Conference, pp. 8, http://cs.ucsb.edu/~ravenben/papers/prelims/plan9_old.pdf, "Process migration is also deliberately absent from Plan 9."